# t.column :pedido_id,      :integer, :null => false
# t.column :libro_id,       :integer, :null => false
# t.column :cantidad,       :integer, :null => false
# t.column :precio_unidad,  :integer, :null => false

class PedidoLinea < ActiveRecord::Base
  validates_presence_of :pedido_id
  validates_presence_of :libro_id
  validates_presence_of :cantidad
  validates_presence_of :precio_unidad
  validates_numericality_of :precio_unidad
  
  belongs_to  :pedido
  belongs_to  :libro
  
  after_save     :actualizar_pedido_libros_precio
  after_destroy  :actualizar_pedido_libros_precio
  
  protected
    def actualizar_pedido_libros_precio
      libros_precio = 0
      
      self.pedido.lineas.each do |linea|
        libros_precio += linea.precio_unidad * linea.cantidad
      end
      
      self.pedido.libros_precio = libros_precio
      self.pedido.save
    end
end